package com.cictec.middleware.core.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

@Table(name = "t_bus_line")
public class BusLine implements Serializable {

	/**
	 * t_bus_line_device_id 表中的线路类型(0:未指定，1：上行，2：下行)
	 */
	@Transient
	private String lineType;
	@Transient
	private List<Integer> busLineIds;
	/**
	 * 线路所属组织机构名称
	 */
	@Transient
	private String lineOrgName;

	/**
	 * 设备线路id
	 * 
	 * @return
	 */
	public List<Integer> getBusLineIds() {
		return busLineIds;
	}

	/**
	 * 设备线路id
	 * 
	 * @param busLineIds
	 */
	public void setBusLineIds(List<Integer> busLineIds) {
		this.busLineIds = busLineIds;
	}

	/**
	 * 线路所属组织机构名称
	 */
	public String getLineOrgName() {
		return lineOrgName;
	}

	/**
	 * 线路所属组织机构名称
	 */
	public void setLineOrgName(String lineOrgName) {
		this.lineOrgName = lineOrgName;
	}

	/**
	 * 主键
	 */
	@Id
	@Column(name = "line_uuid")
	private String lineUuid;

	/**
	 * 创建者
	 */
	@Column(name = "line_create_user")
	private String lineCreateUser;

	/**
	 * 所属机构
	 */
	@Column(name = "line_org_uuid")
	private String lineOrgUuid;

	/**
	 * 线路名称
	 */
	@Column(name = "line_name")
	private String lineName;

	/**
	 * 删除标记 1：启用 0：禁用
	 */
	@Column(name = "line_isvalid")
	private String lineIsvalid;

	/**
	 * 是否环线车；0：否；1：是
	 */
	@Column(name = "line_isloop")
	private Integer lineIsloop;

	/**
	 * 发车报警阀值；发车时间大于或小于该时间，则报警！
	 */
	@Column(name = "line_departure_alarm_threshold")
	private Integer lineDepartureAlarmThreshold;

	/**
	 * 电话本编号
	 */
	@Column(name = "line_phone_book_uuid")
	private String linePhoneBookUuid;

	/**
	 * 回场站时间段
	 */
	@Column(name = "line_return_park_note_time")
	private String lineReturnParkNoteTime;

	/**
	 * 最大报警站数
	 */
	@Column(name = "line_max_alarm_distance")
	private Integer lineMaxAlarmDistance;

	/**
	 * 最小报警站数 <br>
	 * 线路上车辆过近的阈值 单位为站 默认2
	 */
	@Column(name = "line_min_alarm_distance")
	private Integer lineMinAlarmDistance = 2;

	/**
	 * 最大报警站数 <br>
	 * 线路上车辆过远的阈值 单位为站 默认6
	 */
	@Column(name = "line_max_alarm_station")
	private Integer lineMaxAlarmStation = 6;

	/**
	 * 最小报警站数
	 */
	@Column(name = "line_min_alarm_station")
	private Integer lineMinAlarmStation;

	/**
	 * 获取发车类型（0单向 ，1双向，2环线）
	 */
	@Column(name = "line_bf_type")
	private Integer lineBfType;

	/**
	 * 线路的父线路
	 */
	@Column(name = "par_line_uuid")
	private String parLineUuid;

	/**
	 * 线路限速报警时间
	 */
	@Column(name = "line_overspeed_time")
	private Integer lineOverspeedTime;

	/**
	 * 是否是通宵线路
	 */
	@Column(name = "line_is_overnight")
	private Short lineIsOvernight;

	/**
	 * 修改人
	 */
	@Column(name = "line_update_user")
	private String lineUpdateUser;

	/**
	 * 备注
	 */
	@Column(name = "line_remark")
	private String lineRemark;

	/**
	 * 删除表示（0:未删除;1:已删除）
	 */
	@Column(name = "line_drop_flag")
	private Short lineDropFlag;

	/**
	 * 首班时间
	 */
	@Column(name = "line_first_time")
	private String lineFirstTime;

	/**
	 * 末班时间
	 */
	@Column(name = "line_last_time")
	private String lineLastTime;

	/**
	 * 票价
	 */
	@Column(name = "line_carfare")
	private String lineCarfare;

	/**
	 * 修改时间
	 */
	@Column(name = "line_update_time")
	private Date lineUpdateTime;

	/**
	 * 创建时间
	 */
	@Column(name = "line_create_time")
	private Date lineCreateTime;

	/**
	 * 回场开始时间
	 */
	@Column(name = "line_return_start_time")
	private String lineReturnStartTime;

	/**
	 * 回场结束时间
	 */
	@Column(name = "line_return_end_time")
	private String lineReturnEndTime;

	/**
	 * 班制 1.一班制 2.二班制 3.三班制
	 */
	@Column(name = "line_class_system")
	private Short lineClassSystem;

	/**
	 * 来自同步库 1 来自别的库 0 正常录入数据
	 */
	@Column(name = "line_flag")
	private Short lineFlag;

	/**
	 * 上行计划里程
	 */
	@Column(name = "line_up_plan")
	private String lineUpPlan;

	/**
	 * 下行计划里程
	 */
	@Column(name = "line_down_plan")
	private String lineDownPlan;

	private static final long serialVersionUID = 1L;

	/**
	 * t_bus_line_device_id 表中的线路类型(0:未指定，1：上行，2：下行)
	 * 
	 * @return
	 */
	public String getLineType() {
		return lineType;
	}

	/**
	 * t_bus_line_device_id 表中的线路类型(0:未指定，1：上行，2：下行)
	 * 
	 * @param lineType
	 */
	public void setLineType(String lineType) {
		this.lineType = lineType;
	}

	/**
	 * 获取主键
	 *
	 * @return line_uuid - 主键
	 */
	public String getLineUuid() {
		return lineUuid;
	}

	/**
	 * 设置主键
	 *
	 * @param lineUuid
	 *            主键
	 */
	public void setLineUuid(String lineUuid) {
		this.lineUuid = lineUuid == null ? null : lineUuid.trim();
	}

	/**
	 * 获取创建者
	 *
	 * @return line_create_user - 创建者
	 */
	public String getLineCreateUser() {
		return lineCreateUser;
	}

	/**
	 * 设置创建者
	 *
	 * @param lineCreateUser
	 *            创建者
	 */
	public void setLineCreateUser(String lineCreateUser) {
		this.lineCreateUser = lineCreateUser == null ? null : lineCreateUser.trim();
	}

	/**
	 * 获取所属机构
	 *
	 * @return line_org_uuid - 所属机构
	 */
	public String getLineOrgUuid() {
		return lineOrgUuid;
	}

	/**
	 * 设置所属机构
	 *
	 * @param lineOrgUuid
	 *            所属机构
	 */
	public void setLineOrgUuid(String lineOrgUuid) {
		this.lineOrgUuid = lineOrgUuid == null ? null : lineOrgUuid.trim();
	}

	/**
	 * 获取线路名称
	 *
	 * @return line_name - 线路名称
	 */
	public String getLineName() {
		return lineName;
	}

	/**
	 * 设置线路名称
	 *
	 * @param lineName
	 *            线路名称
	 */
	public void setLineName(String lineName) {
		this.lineName = lineName == null ? null : lineName.trim();
	}

	/**
	 * 获取删除标记 1：启用 0：禁用
	 *
	 * @return line_isvalid - 删除标记 1：启用 0：禁用
	 */
	public String getLineIsvalid() {
		return lineIsvalid;
	}

	/**
	 * 设置删除标记 1：启用 0：禁用
	 *
	 * @param lineIsvalid
	 *            删除标记 1：启用 0：禁用
	 */
	public void setLineIsvalid(String lineIsvalid) {
		this.lineIsvalid = lineIsvalid == null ? null : lineIsvalid.trim();
	}

	/**
	 * 获取是否环线车；0：否；1：是
	 *
	 * @return line_isloop - 是否环线车；0：否；1：是
	 */
	public Integer getLineIsloop() {
		return lineIsloop;
	}

	/**
	 * 设置是否环线车；0：否；1：是
	 *
	 * @param lineIsloop
	 *            是否环线车；0：否；1：是
	 */
	public void setLineIsloop(Integer lineIsloop) {
		this.lineIsloop = lineIsloop;
	}

	/**
	 * 获取发车报警阀值；发车时间大于或小于该时间，则报警！
	 *
	 * @return line_departure_alarm_threshold - 发车报警阀值；发车时间大于或小于该时间，则报警！
	 */
	public Integer getLineDepartureAlarmThreshold() {
		return lineDepartureAlarmThreshold;
	}

	/**
	 * 设置发车报警阀值；发车时间大于或小于该时间，则报警！
	 *
	 * @param lineDepartureAlarmThreshold
	 *            发车报警阀值；发车时间大于或小于该时间，则报警！
	 */
	public void setLineDepartureAlarmThreshold(Integer lineDepartureAlarmThreshold) {
		this.lineDepartureAlarmThreshold = lineDepartureAlarmThreshold;
	}

	/**
	 * 获取电话本编号
	 *
	 * @return line_phone_book_uuid - 电话本编号
	 */
	public String getLinePhoneBookUuid() {
		return linePhoneBookUuid;
	}

	/**
	 * 设置电话本编号
	 *
	 * @param linePhoneBookUuid
	 *            电话本编号
	 */
	public void setLinePhoneBookUuid(String linePhoneBookUuid) {
		this.linePhoneBookUuid = linePhoneBookUuid == null ? null : linePhoneBookUuid.trim();
	}

	/**
	 * 获取回场站时间段
	 *
	 * @return line_return_park_note_time - 回场站时间段
	 */
	public String getLineReturnParkNoteTime() {
		return lineReturnParkNoteTime;
	}

	/**
	 * 设置回场站时间段
	 *
	 * @param lineReturnParkNoteTime
	 *            回场站时间段
	 */
	public void setLineReturnParkNoteTime(String lineReturnParkNoteTime) {
		this.lineReturnParkNoteTime = lineReturnParkNoteTime == null ? null : lineReturnParkNoteTime.trim();
	}

	/**
	 * 获取最大报警站数
	 *
	 * @return line_max_alarm_distance - 最大报警站数
	 */
	public Integer getLineMaxAlarmDistance() {
		return lineMaxAlarmDistance;
	}

	/**
	 * 设置最大报警站数
	 *
	 * @param lineMaxAlarmDistance
	 *            最大报警站数
	 */
	public void setLineMaxAlarmDistance(Integer lineMaxAlarmDistance) {
		this.lineMaxAlarmDistance = lineMaxAlarmDistance;
	}

	/**
	 * 获取最小报警站数
	 *
	 * @return line_min_alarm_distance - 最小报警站数
	 */
	public Integer getLineMinAlarmDistance() {
		return lineMinAlarmDistance;
	}

	/**
	 * 设置最小报警站数
	 *
	 * @param lineMinAlarmDistance
	 *            最小报警站数
	 */
	public void setLineMinAlarmDistance(Integer lineMinAlarmDistance) {
		this.lineMinAlarmDistance = lineMinAlarmDistance;
	}

	/**
	 * 获取最大报警站数
	 *
	 * @return line_max_alarm_station - 最大报警站数
	 */
	public Integer getLineMaxAlarmStation() {
		return lineMaxAlarmStation;
	}

	/**
	 * 设置最大报警站数
	 *
	 * @param lineMaxAlarmStation
	 *            最大报警站数
	 */
	public void setLineMaxAlarmStation(Integer lineMaxAlarmStation) {
		this.lineMaxAlarmStation = lineMaxAlarmStation;
	}

	/**
	 * 获取最小报警站数
	 *
	 * @return line_min_alarm_station - 最小报警站数
	 */
	public Integer getLineMinAlarmStation() {
		return lineMinAlarmStation;
	}

	/**
	 * 设置最小报警站数
	 *
	 * @param lineMinAlarmStation
	 *            最小报警站数
	 */
	public void setLineMinAlarmStation(Integer lineMinAlarmStation) {
		this.lineMinAlarmStation = lineMinAlarmStation;
	}

	/**
	 * 获取发车类型（0单向 ，1双向，2环线）
	 *
	 * @return line_bf_type - 发车类型（0单向 ，1双向，2环线）
	 */
	public Integer getLineBfType() {
		return lineBfType;
	}

	/**
	 * 发车类型（0单向 ，1双向，2环线）
	 *
	 * @param lineBfType
	 *            设置发车类型（0单向 ，1双向，2环线）
	 */
	public void setLineBfType(Integer lineBfType) {
		this.lineBfType = lineBfType;
	}

	/**
	 * 获取线路的父线路
	 *
	 * @return par_line_uuid - 线路的父线路
	 */
	public String getParLineUuid() {
		return parLineUuid;
	}

	/**
	 * 设置线路的父线路
	 *
	 * @param parLineUuid
	 *            线路的父线路
	 */
	public void setParLineUuid(String parLineUuid) {
		this.parLineUuid = parLineUuid == null ? null : parLineUuid.trim();
	}

	/**
	 * 获取线路限速报警时间
	 *
	 * @return line_overspeed_time - 线路限速报警时间
	 */
	public Integer getLineOverspeedTime() {
		return lineOverspeedTime;
	}

	/**
	 * 设置线路限速报警时间
	 *
	 * @param lineOverspeedTime
	 *            线路限速报警时间
	 */
	public void setLineOverspeedTime(Integer lineOverspeedTime) {
		this.lineOverspeedTime = lineOverspeedTime;
	}

	/**
	 * 获取是否是通宵线路
	 *
	 * @return line_is_overnight - 是否是通宵线路
	 */
	public Short getLineIsOvernight() {
		return lineIsOvernight;
	}

	/**
	 * 设置是否是通宵线路
	 *
	 * @param lineIsOvernight
	 *            是否是通宵线路
	 */
	public void setLineIsOvernight(Short lineIsOvernight) {
		this.lineIsOvernight = lineIsOvernight;
	}

	/**
	 * 获取修改人
	 *
	 * @return line_update_user - 修改人
	 */
	public String getLineUpdateUser() {
		return lineUpdateUser;
	}

	/**
	 * 设置修改人
	 *
	 * @param lineUpdateUser
	 *            修改人
	 */
	public void setLineUpdateUser(String lineUpdateUser) {
		this.lineUpdateUser = lineUpdateUser == null ? null : lineUpdateUser.trim();
	}

	/**
	 * 获取备注
	 *
	 * @return line_remark - 备注
	 */
	public String getLineRemark() {
		return lineRemark;
	}

	/**
	 * 设置备注
	 *
	 * @param lineRemark
	 *            备注
	 */
	public void setLineRemark(String lineRemark) {
		this.lineRemark = lineRemark == null ? null : lineRemark.trim();
	}

	/**
	 * 获取删除表示（0:未删除;1:已删除）
	 *
	 * @return line_drop_flag - 删除表示（0:未删除;1:已删除）
	 */
	public Short getLineDropFlag() {
		return lineDropFlag;
	}

	/**
	 * 设置删除表示（0:未删除;1:已删除）
	 *
	 * @param lineDropFlag
	 *            删除表示（0:未删除;1:已删除）
	 */
	public void setLineDropFlag(Short lineDropFlag) {
		this.lineDropFlag = lineDropFlag;
	}

	/**
	 * 获取首班时间
	 *
	 * @return line_first_time - 首班时间
	 */
	public String getLineFirstTime() {
		return lineFirstTime;
	}

	/**
	 * 设置首班时间
	 *
	 * @param lineFirstTime
	 *            首班时间
	 */
	public void setLineFirstTime(String lineFirstTime) {
		this.lineFirstTime = lineFirstTime == null ? null : lineFirstTime.trim();
	}

	/**
	 * 获取末班时间
	 *
	 * @return line_last_time - 末班时间
	 */
	public String getLineLastTime() {
		return lineLastTime;
	}

	/**
	 * 设置末班时间
	 *
	 * @param lineLastTime
	 *            末班时间
	 */
	public void setLineLastTime(String lineLastTime) {
		this.lineLastTime = lineLastTime == null ? null : lineLastTime.trim();
	}

	/**
	 * 获取票价
	 *
	 * @return line_carfare - 票价
	 */
	public String getLineCarfare() {
		return lineCarfare;
	}

	/**
	 * 设置票价
	 *
	 * @param lineCarfare
	 *            票价
	 */
	public void setLineCarfare(String lineCarfare) {
		this.lineCarfare = lineCarfare == null ? null : lineCarfare.trim();
	}

	/**
	 * 获取修改时间
	 *
	 * @return line_update_time - 修改时间
	 */
	public Date getLineUpdateTime() {
		return lineUpdateTime;
	}

	/**
	 * 设置修改时间
	 *
	 * @param lineUpdateTime
	 *            修改时间
	 */
	public void setLineUpdateTime(Date lineUpdateTime) {
		this.lineUpdateTime = lineUpdateTime;
	}

	/**
	 * 获取创建时间
	 *
	 * @return line_create_time - 创建时间
	 */
	public Date getLineCreateTime() {
		return lineCreateTime;
	}

	/**
	 * 设置创建时间
	 *
	 * @param lineCreateTime
	 *            创建时间
	 */
	public void setLineCreateTime(Date lineCreateTime) {
		this.lineCreateTime = lineCreateTime;
	}

	/**
	 * 获取回场开始时间
	 *
	 * @return line_return_start_time - 回场开始时间
	 */
	public String getLineReturnStartTime() {
		return lineReturnStartTime;
	}

	/**
	 * 设置回场开始时间
	 *
	 * @param lineReturnStartTime
	 *            回场开始时间
	 */
	public void setLineReturnStartTime(String lineReturnStartTime) {
		this.lineReturnStartTime = lineReturnStartTime == null ? null : lineReturnStartTime.trim();
	}

	/**
	 * 获取回场结束时间
	 *
	 * @return line_return_end_time - 回场结束时间
	 */
	public String getLineReturnEndTime() {
		return lineReturnEndTime;
	}

	/**
	 * 设置回场结束时间
	 *
	 * @param lineReturnEndTime
	 *            回场结束时间
	 */
	public void setLineReturnEndTime(String lineReturnEndTime) {
		this.lineReturnEndTime = lineReturnEndTime == null ? null : lineReturnEndTime.trim();
	}

	/**
	 * 获取班制 1.一班制 2.二班制 3.三班制
	 *
	 * @return line_class_system - 班制 1.一班制 2.二班制 3.三班制
	 */
	public Short getLineClassSystem() {
		return lineClassSystem;
	}

	/**
	 * 设置班制 1.一班制 2.二班制 3.三班制
	 *
	 * @param lineClassSystem
	 *            班制 1.一班制 2.二班制 3.三班制
	 */
	public void setLineClassSystem(Short lineClassSystem) {
		this.lineClassSystem = lineClassSystem;
	}

	/**
	 * 获取来自同步库 1 来自别的库 0 正常录入数据
	 *
	 * @return line_flag - 来自同步库 1 来自别的库 0 正常录入数据
	 */
	public Short getLineFlag() {
		return lineFlag;
	}

	/**
	 * 设置来自同步库 1 来自别的库 0 正常录入数据
	 *
	 * @param lineFlag
	 *            来自同步库 1 来自别的库 0 正常录入数据
	 */
	public void setLineFlag(Short lineFlag) {
		this.lineFlag = lineFlag;
	}

	/**
	 * 获取上行计划里程
	 *
	 * @return line_up_plan - 上行计划里程
	 */
	public String getLineUpPlan() {
		return lineUpPlan;
	}

	/**
	 * 设置上行计划里程
	 *
	 * @param lineUpPlan
	 *            上行计划里程
	 */
	public void setLineUpPlan(String lineUpPlan) {
		this.lineUpPlan = lineUpPlan == null ? null : lineUpPlan.trim();
	}

	/**
	 * 获取下行计划里程
	 *
	 * @return line_down_plan - 下行计划里程
	 */
	public String getLineDownPlan() {
		return lineDownPlan;
	}

	/**
	 * 设置下行计划里程
	 *
	 * @param lineDownPlan
	 *            下行计划里程
	 */
	public void setLineDownPlan(String lineDownPlan) {
		this.lineDownPlan = lineDownPlan == null ? null : lineDownPlan.trim();
	}

	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder();
		sb.append(getClass().getSimpleName());
		sb.append(" [");
		sb.append("Hash = ").append(hashCode());
		sb.append(", lineUuid=").append(lineUuid);
		sb.append(", lineCreateUser=").append(lineCreateUser);
		sb.append(", lineOrgUuid=").append(lineOrgUuid);
		sb.append(", lineName=").append(lineName);
		sb.append(", lineIsvalid=").append(lineIsvalid);
		sb.append(", lineIsloop=").append(lineIsloop);
		sb.append(", lineDepartureAlarmThreshold=").append(lineDepartureAlarmThreshold);
		sb.append(", linePhoneBookUuid=").append(linePhoneBookUuid);
		sb.append(", lineReturnParkNoteTime=").append(lineReturnParkNoteTime);
		sb.append(", lineMaxAlarmDistance=").append(lineMaxAlarmDistance);
		sb.append(", lineMinAlarmDistance=").append(lineMinAlarmDistance);
		sb.append(", lineMaxAlarmStation=").append(lineMaxAlarmStation);
		sb.append(", lineMinAlarmStation=").append(lineMinAlarmStation);
		sb.append(", lineBfType=").append(lineBfType);
		sb.append(", parLineUuid=").append(parLineUuid);
		sb.append(", lineOverspeedTime=").append(lineOverspeedTime);
		sb.append(", lineIsOvernight=").append(lineIsOvernight);
		sb.append(", lineUpdateUser=").append(lineUpdateUser);
		sb.append(", lineRemark=").append(lineRemark);
		sb.append(", lineDropFlag=").append(lineDropFlag);
		sb.append(", lineFirstTime=").append(lineFirstTime);
		sb.append(", lineLastTime=").append(lineLastTime);
		sb.append(", lineCarfare=").append(lineCarfare);
		sb.append(", lineUpdateTime=").append(lineUpdateTime);
		sb.append(", lineCreateTime=").append(lineCreateTime);
		sb.append(", lineReturnStartTime=").append(lineReturnStartTime);
		sb.append(", lineReturnEndTime=").append(lineReturnEndTime);
		sb.append(", lineClassSystem=").append(lineClassSystem);
		sb.append(", lineFlag=").append(lineFlag);
		sb.append(", lineUpPlan=").append(lineUpPlan);
		sb.append(", lineDownPlan=").append(lineDownPlan);
		sb.append("]");
		return sb.toString();
	}
}